.TH std::ranges::join_view::begin 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::ranges::join_view::begin \- std::ranges::join_view::begin

.SH Synopsis
   constexpr auto begin();                                             \fB(1)\fP (since
                                                                           C++20)
   constexpr auto begin() const

       requires ranges::input_range<const V> &&                        \fB(2)\fP (since
                                                                           C++20)
                std::is_reference_v<ranges::range_reference_t<const
   V>>;

   Returns an iterator to the first element of the join_view. Given base_ is the
   underlying view,

   1) Equivalent to return /*iterator*/<true>{*this, ranges::begin(base_)}; if
   __SimpleView<V> is satisfied and ranges::range_reference_t<V> is reference type.
   Otherwise, equivalent to return /*iterator*/<false>{*this, ranges::begin(base_)};.
   2) Equivalent to return /*iterator*/<true>{*this, ranges::begin(base_)};.

.SH Parameters

   \fI(none)\fP

.SH Return value

   Iterator to the first element.

.SH Notes

   When ranges::range_reference_t<V> is not a reference type, that is, deferencing an
   iterator of V returns a prvalue temporary, the join_view is only an input_range, in
   which case only single-pass iteration is supported, and repeated calls to begin()
   may not give meaningful results.

.SH Example

    This section is incomplete
    Reason: no example

.SH See also

   end           returns an iterator or a sentinel to the end
   (C++20)       \fI(public member function)\fP
   ranges::begin returns an iterator to the beginning of a range
   (C++20)       (customization point object)

.SH Category:
     * Todo no example
